@苏苏
2年前 提问
1个回答

SQlServer数据库系统的安全机制有哪些

X0_0X
2年前

SQlServer数据库系统的安全机制有以下这些:

  • 身份验证:对用户的身份认证是数据库管理系统提供的最外层安全保护措施,其方法是用户进入系统时通过输入ID和密码向系统出示自己的身份证明,系统对用户身份进行审查核实,经过确认后才提供与之相对应的系统服务。SQLServer支持两种身份认证模式,分布式WindowsNT认证模式和混合认证模式。

  • 访问控制:为了保证用户只能存取有权存取的数据,数据库系统要求对每个用户定义存取权限。在SQLServer中,用户是属于特定数据库的,数据库用户与登录标识相关联,一个应用程序使用登录标识向SQLServer登录成功后,能否对某个数据库进行操作,由该数据库中是否有相应的数据库用户来决定。SQLServer可根据访问用户所属的用户类型,利用GRANT等语句来对数据库或数据库对象作权限的控制,能够较为完善地支持自主访问控制策略。

  • 审计功能:数据库审计是监视和记录用户对数据库所施加的各种操作的机制。通过审计机制,可以自动记录用户操作,利用审计跟踪的信息,便于追查有关责任,也有助于发现系统安全方面的弱点和漏洞。SQLServer能提供较为完善的审计功能,用来监视各用户对数据库施加的动作。SQLServer审计方式具体分用户审计和系统审计两种,审计工作一般通过SQL事件探查器完成。启用用户审计功能时,审计系统可记下所有对该数据库表或视图进行访问的企图(包括成功的和不成功的)及每次操作的用户名、时间、操作代码等信息;系统审计由系统管理员进行,其审计内容主要是系统一级命令以及数据库客体的使用情况。

  • 数据库加密:数据库加密通过将数据用密文形式存储或传输的手段保证高敏感数据的安全,这样可以防止那些企图通过不正常途径存取数据的行为。SQLServer也提供了加密的功能,以强化对分布式数据库的安全管理。SQLServer使用名为pwdencrypt的散列函数来加密隐藏用户存储在Master数据库中系统表内的密码,将已定义的视图、存储过程、触发器等都存储在系统表syscomments中,SQLServer提供了内部加密机制,可以使用withencryption语句来进行加密。在条件允许情况下,可以通过启动相应加密功能,让SQLServer在通过网络传输数据时将数据按照SSL协议加密处理后传输。

  • 完整性机制:数据库的完整性机制用于规定数据库中的数据应满足的语义,并对其进行检查,以保证数据的正确性和相容性。SQLServer提供了完善的数据完整性定义和检查机制,可以通过SQL语句或企业管理器中的可视化界面进行完整性定义,不用额外书写代码,可以有效地支持数据的实体完整性、参照完整性检查,并且提供比较灵活的用户自定义完整性定义检查机制。

  • 触发器机制:SQLServer还提供了触发器机制。当对数据库表进行插入、更新和删除操作时,触发器能够自动根据实际情况触发执行,产生一系列操作或回退那些破坏数据库完整性的操作。触发器可以包含非常复杂的程序设计逻辑,能提供约束、规则和默认的功能。

  • 视图和存储过程机制:视图是从一个或几个基本表(视图)中导出的虚表。在数据库系统中,可以利用视图通过授予用户操作特定视图的权限,限制用户访问表的特定行和特定列来保证数据的安全,防止用户对基本表的操作,实现行级或列级的安全性。在SQLServer中,系统较好地支持了视图定义和访问机制,如可利用CREATEVIEW语句建立视图,利用SELECT子句行视图访问等,通过建立视图以及将视图表中的不同记录分成不同的保密级别,甚至将同一字段中的不同值分成不同的保密级别,控制用户可以看到的数据,实现安全性。